Introduction
Today we will discuss the XML Control added in ASP.NET 2.0 standard controls library.
Over the past few years storing data in XML has become very popular. Data stored in XML can be read using a lot of inbuilt objects provided by .NET framework like XMLReader, XPath Query and the old fashioned XMLDOM object. In ASP.NET MS has gone a step ahead and provided an XML control which easily reads as well as transforms your data in the desired format using xslt.
Earlier you would have created an XML DOM object, loaded the xml file in DOM, Traveresed through the various nodes and then written a function that would format the data in the desired format and diplsay it on the page. The same can be performed using XMLReader and XPath Queries.
XML Control uses the power of xslt. Personally I have been a great fan of XSLT. The reason - XSLT is a scripting language for transforming XML .It has condiions , loops.etc which allow you to parse through the xml and reformat or even recreate an completely different xml using the same data.
XML Control Sample Application
Let us now create a sample and check out the power of xslt on XML transformation.
1. Open a new web project,Add a new form and add drag and drop the XML control on the form.
2. Second to the project add an xml file called Employee.xml and add the following content to the xml file
="1.0" ="utf-8"
<employees>
<employee>
<name>Namrata Shah</name>
<id>3456</id>
<tele>123-123-2343</tele>
<email>ns@mphasis.com</email>
</employee>
<employee>
<name>Tony Blair</name>
<id>4567</id>
<tele>234-644-8904</tele>
<email>tb@uk.com</email>
</employee>
<employee>
<name>George Bush</name>
<id>5678</id>
<tele>123-423-2343</tele>
<email>gb@usa.com</email>
</employee>
</employees>
3. Add an Employee.xslt file to the project and add the following content
="1.0" ="utf-8"
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform">http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html"/>
<xsl:template match="/">
<html>
<head>
<title>ABC Employee Register</title>
</head>
<body>
<xsl:apply-templates />
</body>
</html>
</xsl:template>
<xsl:template match="employees">
<h4>ABC Group of Companies</h4><hr color="white"/>
<xsl:apply-templates />
</xsl:template>
<xsl:template match="id">
<b>Emp ID :</b> <xsl:apply-templates />
<br/>
</xsl:template>
<xsl:template match="name">
<b>Name:</b> <xsl:apply-templates /><br/>
</xsl:template>
<xsl:template match="tele">
<b>Phone:</b> <xsl:apply-templates /><br/>
</xsl:template>
<xsl:template match="email">
<b>Email:</b> <xsl:apply-templates /><br/> <br/>
<br/>
</xsl:template>
</xsl:stylesheet>
4. The xml file has data for the employees of ABC Group of Companies and we need to create a screen which displays this information on the web page.
5. Let us set the values of DocumentSource of the XML object to Employee.xml. AFter setting the document source execute the project and observe the results on the screen.
6. You should see the list of all the records present in the XML file as follows
Namrata Shah3456123-123-2343ns@mphasis.comTony Blair4567234-644-
8904tb@uk.comGeorge Bush5678123-423-2343gb@usa.com
7. The records a shown in flat style one after the other. Definitely the user would not want to view the records in a liner format as above. WE need to display the records to the user in a tabular format separating the records.
8. Now let us set the value for Transformsource. Select the Employee.xslt we created.
9. Compile and build and execute the project snf you will view a tabulr record by record view of all the employees working for ABC corp.
10. XSLT has transformed the Employee data present in employee.xml it not more readable and meaningful format.
Thanks a lot.
Regards,
Namratha (Nasha)